home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / hotkey / AutoHotkey104504_Install.exe / AutoHotkey.chm / docs / scripts / windowshading.ahk < prev    next >
Text File  |  2006-11-15  |  2KB  |  54 lines

  1. ; Window Shading (roll up a window to its title bar) -- by Rajat
  2. ; http://www.autohotkey.com
  3. ; This script reduces a window to its title bar and then back to its
  4. ; original size by pressing a single hotkey.  Any number of windows
  5. ; can be reduced in this fashion (the script remembers each).  If the
  6. ; script exits for any reason, all "rolled up" windows will be
  7. ; automatically restored to their original heights.
  8.  
  9. ; Set the height of a rolled up window here.  The operating system
  10. ; probably won't allow the title bar to be hidden regardless of
  11. ; how low this number is:
  12. ws_MinHeight = 25
  13.  
  14. ; This line will unroll any rolled up windows if the script exits
  15. ; for any reason:
  16. OnExit, ExitSub
  17. return  ; End of auto-execute section
  18.  
  19. #z::  ; Change this line to pick a different hotkey.
  20. ; Below this point, no changes should be made unless you want to
  21. ; alter the script's basic functionality.
  22. ; Uncomment this next line if this subroutine is to be converted
  23. ; into a custom menu item rather than a hotkey.  The delay allows
  24. ; the active window that was deactivated by the displayed menu to
  25. ; become active again:
  26. ;Sleep, 200
  27. WinGet, ws_ID, ID, A
  28. Loop, Parse, ws_IDList, |
  29. {
  30.     IfEqual, A_LoopField, %ws_ID%
  31.     {
  32.         ; Match found, so this window should be restored (unrolled):
  33.         StringTrimRight, ws_Height, ws_Window%ws_ID%, 0
  34.         WinMove, ahk_id %ws_ID%,,,,, %ws_Height%
  35.         StringReplace, ws_IDList, ws_IDList, |%ws_ID%
  36.         return
  37.     }
  38. }
  39. WinGetPos,,,, ws_Height, A
  40. ws_Window%ws_ID% = %ws_Height%
  41. WinMove, ahk_id %ws_ID%,,,,, %ws_MinHeight%
  42. ws_IDList = %ws_IDList%|%ws_ID%
  43. return
  44.  
  45. ExitSub:
  46. Loop, Parse, ws_IDList, |
  47. {
  48.     if A_LoopField =  ; First field in list is normally blank.
  49.         continue      ; So skip it.
  50.     StringTrimRight, ws_Height, ws_Window%A_LoopField%, 0
  51.     WinMove, ahk_id %A_LoopField%,,,,, %ws_Height%
  52. }
  53. ExitApp  ; Must do this for the OnExit subroutine to actually Exit the script.
  54.